Relational Verification of Programs with Integer Data

نویسنده

  • Filip Konečný
چکیده

This work presents novel methods for verification of reachability and termination properties of programs that manipulate unbounded integer data. Most of these methods are based on acceleration techniques which compute transitive closures of program loops. Firtly, we present an algorithm that accelerates several classes of integer relations and show that the new method performs up to four orders of magnitude better than the previous ones. On the theoretical side, our framework provides a common solution to the acceleration problem by proving that the considered classes of relations are periodic. Subsequently, we introduce a semi-algorithmic reachability analysis technique that tracks relations between variables of integer programs and applies the proposed acceleration algorithm to compute summaries of procedures in a modular way. Next, we present an alternative approach to reachability analysis that integrates predicate abstraction with our acceleration techniques to increase the likelihood of convergence of the algorithm. We evaluate these algorithms and show that they can handle a number of complex integer programs where previous approaches failed. Finally, we study the termination problem for several classes of program loops and show that it is decidable. Moreover, for some of these classes, we design a polynomial time algorithm that computes the exact set of program configurations from which non-terminating runs exist. We further integrate this algorithm into a semialgorithmic method that analyzes termination of integer programs, and show that the resulting technique can verify termination properties of several non-trivial integer programs. ∗Recommended by thesis supervisor: Prof. Tomáš Vojnar c © Copyright 2011. All rights reserved. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies show this notice on the first page or initial screen of a display along with the full citation. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this work in other works requires prior specific permission and/or a fee. Permissions may be requested from STU Press, Vazovova 5, 811 07 Bratislava, Slovakia.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Roland Backhouse : Relational Theory of Data Types 5 David Basin : Program Synthesis as Higher Order Resolution

Introduction 4 Roland Backhouse: Relational Theory of Data Types 5 David Basin: Program Synthesis as Higher Order Resolution 6 Bettina Buth: Verification Support for Compiler Development 7 Debora Weber-Wulff: Growing Programs from Proofs 8 Jacques Loeckx (with M. Wolf): Constructive versus axiomatic and initial specifications 9 Friederike Nickl: An Algebraic/Axiomatic Interpretation of Data Flo...

متن کامل

Software Verification Based on Transformation from Procedural Programs to Rewrite Systems

In our research, taking advantage of methods for proving inductive theorems, we apply them to verification of procedural programs written in a subset of the C language with integer type. More precisely, we transform procedural programs to equivalent rewrite systems, and verify that the rewrite systems satisfy the specifications, using the inductionless induction method. In this paper, we briefl...

متن کامل

Relational Verification Using Product Programs

Relational program logics are formalisms for specifying and verifying properties about two programs or two runs of the same program. These properties range from correctness of compiler optimizations or equivalence between two implementations of an abstract data type, to properties like non-interference or determinism. Yet the current technology for relational verification remains underdeveloped...

متن کامل

The Use of a Formal Simulator to Verify a Simple Real Time Control Program

We present an initial and elementary investigation of the formal specification and mechanical verification of programs that interact with environments. We describe a formal, mechanically produced proof that a simple, real time control program keeps a vehicle on a straightline course in a variable crosswind. To formalize the specification we define a mathematical function which models the intera...

متن کامل

Beyond 2-Safety: Asymmetric Product Programs for Relational Program Verification

Relational Hoare Logic is a generalization of Hoare logic that allows reasoning about executions of two programs, or two executions of the same program. It can be used to verify that a program is robust or (information flow) secure, and that two programs are observationally equivalent. Product programs provide a means to reduce verification of relational judgments to the verification of a (stan...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012